/** @jsxImportSource @emotion/react */
import * as React from "react";
import {Button, Text, useTheme, useToast,} from "customize-easy-ui-component";
import {InspectRecordLayout, InternalItemProps, useItemInputControl} from "../../common/base";
import {useMedia} from "use-media";
import {assertNamesUnique} from "../../common/eHelper";
import {itemA下结论} from "../editorDJ";
import {itemA元件上, itemA元件它} from "../editorMeta";
import {itemA附图} from "../AppendixDiagram";

// export const 结果打勾等的=['√','×','无此项','-'];

export const 工作介质选=['蒸汽','导热油','见管道特性表'];
//台账的"使用单位邮编"在后端配置就=null;所以前端无取值的。
//【离奇的做法】为何不固定给台账：每次做报告都需要设置这个吗？ 复合二者选择1？额定功率(MW)/蒸发量(T/H)： 默认是=蒸发量(T/H)
export const config设备概况 = [
    [['联系电话', '安全员电'] ],
    [['上检日期',{n:'上检日',t:'d'}], ['燃烧器型号', '燃器型'] ],
    [['燃烧器产品编号', '燃器编'], ['性能参数第一条是额定功率的吗',{n:'是功率',t:'b'}] ],
];


/**开启编制时的：默认值初始化操作。  若打印：本编辑器全部都不显示。
 * */
export const EntranceSetup =
    React.forwardRef((
        {children, show, alone = true, repId, verId, rep}: InternalItemProps, ref
    ) => {
        const atPrint = useMedia('print');
        const theme = useTheme();
        const toast = useToast();
        const checkName = true;      //开发测试完，改成=false, 测试时 REACT_APP_TEST 需设置， 开发模式的校对开关。
        const doCheckNames = React.useCallback((verId: string) => {
            //【承压更少项目】，那些属于公共模板目录的 分项报告的唯一性检查在对方自己检查看。
            const result = assertNamesUnique([{value: rep?.tzFields},
                {value: config设备概况, type:'esnt'},
                {value:[...itemA下结论, ...itemA元件上, ...itemA元件它, ...itemA附图 ]},
                {value:['Projects', ]} ]);
            toast({title: "完成！", subtitle: result ? "没发现冲突" : "测试开关没开", intent: "success"});
        }, [rep,toast]);
        const getInpFilter = React.useCallback((par: any) => {}, []);
        const {inp, setInp} = useItemInputControl({ref});
        if (atPrint) return null;
        else return (
            <InspectRecordLayout inp={inp} setInp={setInp} getInpFilter={getInpFilter} show={show}
                                 alone={alone} label={'初始化本报告，默认值配置等'}>
                {checkName && <div>
                    <Text variant="h5">
                        构建开发模板时的工具：校验模板的存储name冲突；
                    </Text>
                    <Button intent='primary' onPress={() => {
                        doCheckNames(verId!);
                    }}>校验模板name唯一性</Button>
                </div>
                }
                <hr/>
            </InspectRecordLayout>
        );
    });

